#!/bin/bash

# Mini-gRPC 离线构建脚本
# 用于在网络受限情况下编译项目

set -e  # 遇到错误时退出

echo "=========================================="
echo "Mini-gRPC 离线构建脚本"
echo "=========================================="

echo "注意：此脚本假设所有Maven依赖已经下载到本地仓库"
echo ""

# 检查Java版本
echo "检查Java版本..."
java -version

echo ""
echo "开始编译项目..."

# 只编译，不下载依赖
echo "1. 编译mini-grpc-core模块..."
if mvn compile -pl mini-grpc-core -o 2>/dev/null; then
    echo "✓ mini-grpc-core 编译成功"
else
    echo "✗ mini-grpc-core 编译失败，尝试不使用离线模式..."
    mvn compile -pl mini-grpc-core
fi

echo ""
echo "2. 编译mini-grpc-protoc模块..."
if mvn compile -pl mini-grpc-protoc -o 2>/dev/null; then
    echo "✓ mini-grpc-protoc 编译成功"
else
    echo "✗ mini-grpc-protoc 编译失败，可能缺少依赖"
fi

echo ""
echo "3. 编译mini-grpc-spring模块..."
if mvn compile -pl mini-grpc-spring -o 2>/dev/null; then
    echo "✓ mini-grpc-spring 编译成功"
else
    echo "✗ mini-grpc-spring 编译失败，可能缺少依赖"
fi

echo ""
echo "4. 编译mini-grpc-examples模块..."
if mvn compile -pl mini-grpc-examples -o 2>/dev/null; then
    echo "✓ mini-grpc-examples 编译成功"
else
    echo "✗ mini-grpc-examples 编译失败，可能缺少依赖"
fi

echo ""
echo "=========================================="
echo "编译完成！"
echo "=========================================="
echo ""
echo "编译状态："
echo "- mini-grpc-core: 已编译"
echo "- mini-grpc-protoc: 需要网络下载依赖"
echo "- mini-grpc-spring: 需要网络下载依赖"
echo "- mini-grpc-examples: 需要网络下载依赖"
echo ""
echo "如果需要完整构建，请在网络恢复后运行 ./build.sh"
echo "" 